#ifndef _STACK_H_
#define _STACK_H_

#include "darray.h"

#ifdef __cplusplus
extern "C"{
#endif


typedef darray_t stack_t;

stack_t *stack_create(uint32_t size, locker_t *locker);
void stack_destroy(stack_t **p_self, darray_item_destroy_func destroy);
int stack_push(stack_t *self, void *data);
void *stack_pop(stack_t *self);
void *stack_top(stack_t *self);
uint32_t stack_nums(stack_t *self);

#ifdef __cplusplus
}
#endif

#endif
